// 中间件本质是一个回调函数
// 中间件作用：使用函数封装公共组件，简化代码

// 分为全局中间件和路由中间件

// 路由中间件
const checkCode = (request, response, next) => {
  // 获取请求头中的code
  const {code} = request.query
  if (code === '123') {
    // 放行
    next()
  } else {
    // 拦截
    response.send('<h1>请先登录</h1>')
  }
}

const express = require('express')
const app = express()

app.get('/home', checkCode, (request, response) => {
  response.status(200).set('xxx', 'yyy').send('前台首页')
})

// 其它响应
app.get('/other', checkCode, (request, response) => {
  response.send('后台页面')
})

app.all('*', (request, response) => {
  response.send('404 Not Found')
})


// 监听端口，启动服务
app.listen(3000, () => {
  console.log('服务已经启动，3000端口监听中...')
})